#ifndef FRAME_H
#define FRAME_H

#include "common_include.h"
#include "camera.h"
#include "mappoints.h"

namespace myslam
{
	class MapPoints;
	class Frame
	{
	public:
		unsigned long id_;
		double time_stamp_;
		cv::Mat T_c_w_;
		Camera* camera_;
		cv::Mat color_, depth_;
	public:
		Frame();
		Frame(long id, double time_stamp = 0, cv::Mat T_c_w = cv::Mat(), Camera* camera = nullptr, cv::Mat color = cv::Mat(), cv::Mat depth = cv::Mat());

		~Frame();

		double findDepth(const cv::KeyPoint& kp);

		cv::Mat getCamCenter() const;

		bool isInFrame(const cv::Point3d pt_world);
	};
}

#endif